home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee((((3333ddddmmmm)))) ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee((((3333ddddmmmm))))
-
-
-
- NNNNAAAAMMMMEEEE
- clQueryScheme, clQueryMaxHeaderSize, clReadHeader - Determine the scheme
- and read the stream header
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ddddmmmmeeeeddddiiiiaaaa////ccccllll....hhhh>>>>
-
- iiiinnnntttt ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee((((vvvvooooiiiidddd ****hhhheeeeaaaaddddeeeerrrr))))
- iiiinnnntttt ccccllllQQQQuuuueeeerrrryyyyMMMMaaaaxxxxHHHHeeeeaaaaddddeeeerrrrSSSSiiiizzzzeeee((((iiiinnnntttt sssscccchhhheeeemmmmeeee))))
- iiiinnnntttt ccccllllRRRReeeeaaaaddddHHHHeeeeaaaaddddeeeerrrr((((CCCCLLLLhhhhaaaannnnddddlllleeee hhhhaaaannnnddddlllleeee,,,, iiiinnnntttt hhhheeeeaaaaddddeeeerrrrSSSSiiiizzzzeeee,,,, vvvvooooiiiidddd ****hhhheeeeaaaaddddeeeerrrr))))
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- _h_e_a_d_e_r A pointer to a buffer containing at least 16 bytes of the
- header.
-
- _s_c_h_e_m_e The decompression scheme to use.
-
- _h_a_n_d_l_e A handle to the decompressor.
-
- _h_e_a_d_e_r_S_i_z_e The maximum size of the header in bytes.
-
- _h_e_a_d_e_r A pointer to a buffer containing the header.
-
- ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee attempts to determine the appropriate decompression scheme
- from 16 bytes of the stream header. It can be called before
- ccccllllOOOOppppeeeennnnDDDDeeeeccccoooommmmpppprrrreeeessssssssoooorrrr to determine which scheme to use.
-
- Once the scheme has been determined, the handle can be opened and then
- the header can be read using ccccllllRRRReeeeaaaaddddHHHHeeeeaaaaddddeeeerrrr. The size of the header
- information is obtained from ccccllllQQQQuuuueeeerrrryyyyMMMMaaaaxxxxHHHHeeeeaaaaddddeeeerrrrSSSSiiiizzzzeeee.
-
- ccccllllRRRReeeeaaaaddddHHHHeeeeaaaaddddeeeerrrr uses only the data in _h_e_a_d_e_r and does not depend on any
- implicitly defined buffers. This call will set up state parameters for
- _h_a_n_d_l_e based on information available in the header. The format of the
- header is scheme-dependent and should not be accessed directly by the
- application.
-
-
- RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSS
- On success, ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee returns the scheme identifier,
- ccccllllQQQQuuuueeeerrrryyyyMMMMaaaaxxxxHHHHeeeeaaaaddddeeeerrrrSSSSiiiizzzzeeee returns the maximum size of the header, and
- ccccllllRRRReeeeaaaaddddHHHHeeeeaaaaddddeeeerrrr returns the number of header bytes read for all cases except
- for MPEG1, in which case it returns a value of 1. This is becuase many
- different types of headers and much non-header information may need to be
- read enroute to reading the relevant MPEG1 headers. On failure, these
- calls return negative error codes.
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee((((3333ddddmmmm)))) ccccllllQQQQuuuueeeerrrryyyySSSScccchhhheeeemmmmeeee((((3333ddddmmmm))))
-
-
-
- EXAMPLE
- #include <dmedia/cl.h>
-
- int decompressionScheme;
- ...
- /* Determine the scheme from the first 16 bytes of the header */
- header = malloc(16);
- read(inFile, header, 16);
- decompressionScheme = clQueryScheme(header);
- if(decompressionScheme < 0) {
- fprintf(stderr, "Unknown scheme in stream header.");
- exit(0);
- }
- free(header);
-
- /* Open the appropriate decompressor */
- clOpenDecompressor(decompressionScheme, &decompressorHdl);
-
- /* Find out how much header information to provide */
- headerSize = clQueryMaxHeaderSize(decompressionScheme);
-
- if(headerSize > 0) {
-
- /* Get the header data */
- header = malloc(headerSize);
- lseek(inFile, 0, SEEK_SET);
- read(inFile, header, headerSize);
-
- /* Read the header */
- clReadHeader(decompressorHdl, headerSize, header);
- free(header);
-
- /* Reset the stream */
- lseek(inFile, 0, SEEK_SET);
- }
- ...
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- CLintro(3dm), clOpenDecompressor(3dm)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-